﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using QLCONGNOLIBS.Controllers;
using QLCONGNOLIBS.Securities;
using QLCONGNOLIBS.Ultils;
using System.Data.SqlClient;
using QLCONGNOLIBS.Models.EntityFW;

namespace QLCONGNOAPPs.UserForms.Logins
{
    public partial class frmLoginInfo : DevExpress.XtraEditors.XtraForm
    {
        SqlConnection m_objSQLConn;
        SecurityEntity m_objSecurity;

        public bool bClose = false;

        public frmLoginInfo(SqlConnection objSQLConnect, SecurityEntity objSecurity)
        {
            InitializeComponent();
            m_objSQLConn = objSQLConnect;
            m_objSecurity = objSecurity;
            txtTenTruyCap.Focus();
        }

        private void btnDangNhap_Click(object sender, EventArgs e)
        {
            if (m_objSQLConn.State == ConnectionState.Closed)
            {
                m_objSQLConn = (new Commons.Services()).getConnection();
            }
            LoginExecute();
        }

        private void LoginExecute()
        {
            dxErrorProvider1.ClearErrors();
            if (!Validations.IsFilled(txtTenTruyCap.Text))
            {
                dxErrorProvider1.SetError(txtTenTruyCap, "Bạn cần nhập tài khoản đăng nhập");
                txtTenTruyCap.Focus();
            }
            if (!Validations.IsFilled(txtMatKhau.Text))
            {
                dxErrorProvider1.SetError(txtMatKhau, "Bạn cần nhập mật khẩu đăng nhập");
                txtMatKhau.Focus();
            }
            try
            {
                tblUser objUserEntity = new tblUser();
                objUserEntity.Username = this.txtTenTruyCap.Text.Trim();
                objUserEntity.Password = this.txtMatKhau.Text;
               
                UsersControllers objUser = new UsersControllers(m_objSQLConn, m_objSecurity);
                objUser.ExecOfCheckElement(objUserEntity);
                if (m_objSecurity.LoginSuccess)
                {
                    this.Close();
                }
                else
                {
                    MessageBox.Show("Thông tin tài khoản không đúng. Vui lòng nhập lại", "Thông báo");
                    dxErrorProvider1.SetError(txtTenTruyCap, "Thông tin tài khoản không đúng. Vui lòng nhập lại");
                    return;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                m_objSQLConn.Close();
            }
        }

        private void frmLoginInfo_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == (Char)Keys.Enter)
            {
                LoginExecute();
            }
        }

        private void frmLoginInfo_FormClosing(object sender, FormClosingEventArgs e)
        {                      
        }
    }
}